Methods and apparatus for imaging bar code scanning

ABSTRACT

Improved systems and techniques for imaging bar code processing. One or more cameras are deployed in a bar code scanner, oriented so that an imaging device of each camera is oriented such that rows of data elements in the imaging device are oriented nonorthogonally with respect to a preferred orientation of a bar code. One or more imaging devices captures bar code data representing light and dark spaces of the bar code. The captured bar code data is analyzed to create one or more rows of data completely transecting the bar code, and the rows of data are processed to generate a scan signal which is in turn processed to extract bar code data.

FIELD OF THE INVENTION

The present invention relates generally to improved systems andtechniques for bar code scanning. More particularly, the inventionrelates to improved systems and techniques for imaging bar code scanningincluding capturing data using imaging devices oriented such that therows of data elements of the imaging device are nonorthogonal topreferred orientations for presentation of bar codes.

BACKGROUND OF THE INVENTION

With the increasing prevalence and capability of digital imagingtechniques, imaging bar code scanning is gaining increasing interest asa mechanism for bar code scanning. Imaging scanning allows forsignificant simplification of scanner design and construction byavoiding complex laser and optical components used in conventional barcode scanners.

Conventional laser bar code scanners, particularly pass by scanners,frequently provide numerous differently oriented scan lines, so that oneor more scan lines can be counted on to intersect bar codes presented ina variety of different orientations. Imaging bar code scanners, on theother hand, typically employ cameras which capture images with square orrectangular imaging devices arranged in one or more rows of dataelements, or pixels, so that image information is distributed across aplurality of rows of data elements. Bar code information, that is, dataindicating light and dark areas of a bar code image, appears in each ofa plurality of rows across the array. Typical imaging bar code scannersoften use imaging devices oriented such that the image of a bar codecaptured by an imaging device is orthogonal to the rows of pixels of theimaging device in a preferred orientation in which the bar code may beexpected to be presented. An image captured by such a device is welladapted to processing if the lines and spaces of the bar code areorthogonal to the rows of pixels in the imaging device, but much lesswell adapted to processing if the lines and spaces are parallel to therows of pixels.

SUMMARY OF THE INVENTION

The present invention recognizes that prior art capture and processingof digital bar code images leads to a strong orientation preference forbar codes. An imaging device with horizontally oriented rows will yieldgood results if a bar code is presented in a vertical, or picket fence,orientation but poor results if the bar code is presented in ahorizontal, or ladder, orientation. An imaging device with verticallyoriented rows will yield good results if a bar code is presented in aladder orientation, but poor results if the bar code is presented in apicket fence orientation. In addition, the present invention recognizesthat a wide variety of bar codes exist, including small bar codes, andincluding bar codes whose smallest lines and spaces are small enoughthat a single pixel of an imaging device might be spanned by both a darkline and a white space. In addition, the invention recognizes that priorart imaging scanners typically experience a relatively shallow depth offield because objects being scanned are presented at a short distancefrom the imaging device, and a relatively wide camera aperture must beused to avoid a need for excessively bright illumination, which couldresult in operator discomfort.

The present invention addresses such concerns, as well as others, byproviding for a scanner employing one or more imaging devices orientedsuch that at least one imaging device will not be oriented such that itsrows are parallel to a bar code. For example, in one aspect of theinvention, two cameras are used. The cameras are oriented such thattheir imaging devices are orthogonal to one another. Such an orientationmay be accomplished, for example, by orienting a first camerahorizontally with respect to a scan window and a second cameravertically with respect to the scan window.

However, it is also possible to use one or more cameras in orientationsthat are not orthogonal to the bar codes, and such orientations mayprovide significant advantages. Positioning a bar code at anonorthogonal angle to an imaging device to be used for image capturecan provide for an effective magnification of the bar code. Therefore,one suitable configuration for an imaging scanner is to orient one ormore cameras such that the rows of the imaging device of each camera areoriented at an angle other than a right angle to the scan window. Forexample, a first camera can be oriented so that the imaging device is at+45° or −45° with respect to the scan window. If an additional camera isused, it can be oriented so that the imaging device is arranged in anopposite orientation to the first imaging device. For example, a firstimaging device may be oriented at +45° and a second imaging device maybe oriented at −45° with respect to the scan window. Such an orientationprovides an effective magnification of a bar code presented verticallyor horizontally, as described further below.

In addition, the use of multiple cameras can be used to provide agreater depth of field for a scanner than can the use of a singlecamera. Therefore, in one embodiment, a scanner according to an aspectof the present invention employs multiple cameras at staggered objectdistances. In another embodiment, one or both cameras employs a rapidfocus lens. Images taken from multiple cameras are used to determine adistance to the bar code and the knowledge of this distance is used tofocus the lens.

A more complete understanding of the present invention, as well asfurther features and advantages of the invention, will be apparent fromthe following Detailed Description and the accompanying drawings.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 illustrates a scanner according to an aspect of the presentinvention;

FIG. 2 illustrates details of a camera used in a scanner according to anaspect of the present invention;

FIGS. 3A-3D illustrate bar codes and rows of data taken from the barcodes according to an aspect of the present invention; and

FIG. 4 illustrates a process of imaging bar code processing according toan aspect of the present invention.

DETAILED DESCRIPTION

FIG. 1 illustrates a bar code scanner 100 according to an aspect of thepresent invention. The components of the scanner 100 are shown in blockdiagram form. The scanner 100 includes a vertical scan window 102 andfirst and second cameras 104A and 104B. While a vertical scan window isshown here as illustrative, a horizontal scan window may be employed asan alternative or in addition to the horizontal scan window 102.

The cameras 104A and 104B are digital cameras including lenses 106A and106B, and imaging devices 108A and 108B, respectively. The cameras 104Aand 104E are oriented such that the imaging devices are at an angle to apreferred orientation for a bar code presented at the scan window 102. Abar code in its preferred orientation of presentation will be presentedin either a horizontal or vertical orientation, so the camera 104A isoriented at an angle of +45° from horizontal, and the camera 104B isoriented at an angle of −45° from horizontal. These orientations insurethat bar codes held in either preferred orientation will intersect rowsof pixels of each of the imaging devices 108A and 108B, and providesadditional advantages discussed in greater detail below.

The scanner 100 further includes a processor 114, memory 116, long termstorage such as flash memory 118, communicating with one another andwith the cameras 104A and 104B over a bus 122. The scanner also includesa scanner interface 123, for communicating with a checkout terminal orother suitable device.

When a bar code is presented at the scan window 102, an image of the barcode is captured by each of the imaging devices 108A and 108B. Theimages may be transferred to memory 116 for analysis. The images will bein the form of light and dark areas, with each image comprising dataspanning rows of pixels. Each row of pixels will include stored datarepresenting light and dark areas of the bar code, and this stored datacan be processed to generate a scan signal. Typically, multiple rows ofpixels will be selected, and the stored data for the selected rows willbe processed so as to combine or examine data from multiple rows. Suchcombination and examination may be performed so as to reduce noise byaveraging data from multiple rows, for combining data representingportions of the bar code, for taking advantage of phase shifting betweenrows, and to achieve other desired functions.

The scanner 100 employs a camera control module 126 and a processingmodule 128, residing in the storage 118 and transferred to memory 116 asneeded for execution by the processor 114. The camera control module 126monitors the images being received by each of the imaging devices 108Aand 108B, and the conditions affecting the cameras 104A and 104B, anddirects appropriate actions by the cameras 104A and 104B, such asfocusing and image capture. The camera control module 126 employs arangefinding and focusing module 129, used to determine the distancefrom one or both of the cameras 104A and 104B to a bar code and to focusone or both of the lenses 106A and 106B based on the distancedetermination.

The processing module 128 employs a data shift module 130, used tooffset data captured by one or both of the imaging devices 108A and 108Bso as to select rows of data which may not necessarily be captured inrows of pixels. Instead, for some relative orientations of a camera anda bar code, rows of data may span multiple rows of pixels.

When an image has been captured by one or both of the imaging devices108A and 108B, the processing module 128 analyzes the image to identifya bar code appearing in the image, and selects rows of pixels storingdata intersecting the bar code. Data from the pixels is combined asneeded to produce one or more rows of data fully transecting the barcode. The rows of data transecting the bar code are processed togenerate a scan signal, and the scan signal is decoded to extract barcode information. The processing module 128 employs a partial dataconstruction module 132, and a data validity check module 134. Theprocessing module 128 also includes a bar code signal generating module136.

FIG. 2 illustrates further details of the camera 104A. The camera 104Eis not illustrated here, in order to avoid repetitive description, butmay suitably operate in a way similar to that of the camera 104Adiscussed below.

The camera 104A includes the imaging device 108A, which may take theform of a charge coupled device (CCD), CMOS sensor device, or othersuitable device. The imaging device 108A comprises an array 202 ofindividual pixels, a horizontal register 204, and a bus 206. The arraymay comprise millions of pixels, each on the order of microns or tens ofmicrons in width and height, but for simplicity, only a sample of 25pixels arranged in rows 208A-208E are illustrated here. The imagingdevice 108A also suitably includes a power and electronics controlpackage 210. These elements may all reside on a single chip. When lightstrikes the imaging device 108A, charges accumulate in the cells of thearray 202. In order to retrieve visual information from the array 202,charges are allowed or induced to migrate vertically to the horizontalregister 204, and then to the bus 206. The camera 104A further comprisesa processor 214, memory 216, and storage 218, as well as a camera bus220. The camera bus 220 provides communication with the bus 122 of thescanner 100. The processor 114, memory 116, and storage 118 are alsoillustrated here, communicating with the camera 104A over the bus 122.

FIGS. 3A and 3B illustrate horizontally and vertically presented barcodes superimposed with data captured by the cameras 104A and 104B. Moreparticularly, FIG. 3A illustrates a bar code 302 presented horizontallywith respect to a scan window such as the scan window 102, and FIG. 3Billustrates a bar code 304 presented vertically with respect to the scanwindow. Lines 306A-306C of FIG. 3A illustrate rows of data captured bythe camera 104A, with the imaging device 108A at an angle of +45° withrespect to the bar code 302, and lines 306D-306F of FIG. 3A illustraterows of data captured by the camera 104B, with the imaging device 108Bat an angle of −45° with respect to the bar code 302. Lines 308A-308C ofFIG. 3B illustrate rows of data captured by the camera 104A, with theimaging device 108A at an angle of +45° with respect to the bar code304, and lines 308D-308F of FIG. 3B illustrate rows of data captured bythe camera 10413, with the imaging device 108B at an angle of −45° withrespect to the bar code 304. It can be seen that all of the rows of datacaptured by the imaging devices 108A and 108B transect all or parts ofthe bar codes 302 and 304, generating substantial bar code data, eventhough none of the rows of data are orthogonal to the bar codes 302 and304, as the rows of data transect the bar codes diagonally. In addition,the light and dark intervals transected by the diagonal rows of data areof the same relative width as intervals transected by vertical rows ofcells aligning with the bars and spaces of a horizontally presented barcode (a picket fence) as in FIG. 3A, or horizontal rows of cellsaligning with the bars and spaces of a vertically presented bar code (aladder) as in FIG. 3B, while providing an effective magnification of theintervals, as described in further detail below. Because the orientationof each of the imaging devices 108A and 108B is intermediate betweenhorizontal and vertical, the scanner 100 does not exhibit the strongorientation preference, along with preferential presentation, of priorart vertical and horizontal imaging scanners, and can relatively easilyprocess both ladder and picket fence tags. It will be recognized that inmany cases a single camera can process both a ladder and a picket fencebar code, and the use of two cameras provides additional data forprocessing.

For example, consider, lines 306A-306C of FIG. 3A and rows 308A-308C ofFIG. 3B. The bar codes 302 and 304 are differently oriented, but eachbar code is transected by the rows of data captured by a single camera,and a combination of the data rows from each camera can be selected toprovide data completely transecting the bar code utilizing bar codestitching in a known manner. For example, the row 306A of FIG. 3Aincludes data from the right edge of the bar code, and the row 306C ofFIG. 3C includes data from the left edge of the bar code. If two camerasoriented at plus and minus 45°, respectively, are employed, data fromcorresponding rows of pixels of each camera can be taken to provide datacompletely transecting the bar code. For example, consider lines 306Aand 306D of FIG. 3A. Line 306A is taken from one row of pixels of camera104A and line 306D is taken from the corresponding row of pixels ofcamera 104B. Between them, the lines 306A and 306D completely transectthe bar code 302 and if the data represented by the lines 306A and 306Dis stitched together, a complete transection of the bar code 302 isachieved.

In addition to reducing the orientation preference exhibited by priorart imaging scanners, the orientation of the cameras 104A and 104B sothat they are not orthogonal to the typical preferred presentationorientations of bar codes provides additional advantages. If the rows ofpixels of an imaging device are oriented at an angle with respect to thelines and spaces of the bar code, an effective magnification isachieved. As the angle moves away from a 90 degree angle, the effectivewidth of the light and dark areas is effectively magnified by a factorof

$\frac{1}{\sin(\alpha)},$where α is the angle. Thus at an angle of 45°, the effectivemagnification is a factor of 1.4. This phenomenon is made clear by anexamination of the geometry of the orthogonal versus angled transectionof the bar code. For example, consider the transection of the dark area210 by the line 306A. The line 306A transects the dark area 310diagonally, and traverses the space 310 over a greater distance thanwould a horizontal line.

FIGS. 3C and 3D illustrate bar code images 312 and 314, taken from barcodes presented at different orientations compared to the images 302 and304. In the orientation of the bar code image 312, the light and darkspaces are orthogonal to the lines 316A-316C and parallel to the lines316D-316F. Similarly, in the orientation of the bar code image 314, thelight and dark spaces are parallel to the lines 318A-318C and orthogonalto the lines 318D-318F. It can be seen that the use of separate,differently oriented cameras provides for an increased flexibility inthe orientation of bar codes. In the examples of FIGS. 3C and 3D, eachbar code is at an unfavorable orientation for one of the cameras, butbecause two separate cameras oriented orthogonally to one another areused, a bar code at an unfavorable location for one camera is at ahighly favorable orientation for the other camera. The use of twocameras thus allows for substantial variation in the orientation atwhich bar codes are presented. One camera or the other is highly likelyto be at a satisfactory orientation with respect to a bar code.

The nonorthogonal orientation of the cameras 104A and 104B providesadditional advantages. A nonorthogonal orientation of pixel rows withrespect to a bar code results in the capture of different data for eachpixel row. Compare FIGS. 3A and 3C. In FIG. 3C, the lines 316A and 316Bcross the dark area 320, at equivalent points on the lines 316A and316B. The image data for the dark area 320 is stored at correspondingpixels for each pixel row capturing data representing the lines 316A and316B, and the lines 316A and 316B represent captures of similar oridentical data at identical points along their extent.

In FIG. 3A, the lines 306A and 306B cross the dark area 310 at differentpoints along the lines, so that data representing the dark area 310 isstored at pixels at different horizontal positions along the rows ofpixels capturing data representing the rows 306A and 306B.

The present invention takes advantage of this phenomenon in a number ofways. Many very small bar codes are now in use, with the width of thelight and dark spaces of such small bar codes approaching the width of apixel of an imaging device. If a pixel is overlapped by portions of alight and dark space, the pixel will capture the data as gray, and thepresence of such invalid data may render a bar code unreadable. If animaging device is orthogonal to a bar code, each row will capturesimilar or identical data and each row will be subject to the sameproblems. If a nonorthogonal orientation is used, however, such as isillustrated in FIG. 3A, each row of pixels will capture different data,with the rows exhibiting a shift of data with respect to one another. Ifone row captures data in which pixels overlap adjacent light and darkspaces, it is highly likely that other rows can be found in which thisphenomenon is not present. With suitable data processing, the overlapcan be filtered out and the accurate data employed.

Returning to FIG. 1, the processing module 128 operates to analyze datacaptured by one or both of the cameras 104A and 104B in order toconstruct data completely representing the light and dark spaces of abar code. The processing module 128 employs the partial dataconstruction module 132 to join data from rows of pixels partiallytransecting a bar code in order to form a line of data representing acomplete transection of the bar code. The partial data constructionmodule 132 recognizes indicia indicating the beginning and end of a barcode and selects from one row of pixels data including the beginning ofa bar code. The partial data construction module 132 then selects from adifferent row of pixels data including the end of the bar code. Thepartial data construction module 132 then joins the data from the tworows, with joining being accomplished by identifying portions of row ofpixels in which data overlaps with data from the other row of pixels.One convenient mechanism that the partial data construction module 132may employ is to select data from corresponding rows of pixels from thecamera 104A and the camera 104B, because in many cases such data can beexpected to combine to yield data completely transecting the bar code.

The processing module 128 further employs the data validity check module134. The data validity check module 134 examines pixels for a selectedrow to determine if more than a predetermined number of pixels arestoring invalid data, such as gray resulting from an overlap of thepixel onto a dark and light space. If more than the predetermined numberof pixels is found, the data validity check module 134 directs theprocessing module 128 to reject the row, and another row is selected andanalyzed.

Once appropriate rows of pixels have been selected and the data storedin these rows of pixels has been analyzed and joined, if needed, one ormore rows of data are passed to the signal generating module 136. Thesignal generating module 136 analyzes the light and dark spaces of therows of data to generate a scan signal, and the decoding module 138processes the scan signal to extract bar code information. The bar codeinformation is then passed to the scanner interface 123 for use by acheckout terminal or other device with which the scanner 100 is used.

In addition to analyzing data by examining data captured by rows ofpixels, increased versatility can be achieved by allowing for shifts ofdata, so that data can be selected from multiple rows of pixels to makeup a row of data transecting a bar code. For example, the line 306A ofFIG. 3A need not necessarily be taken from a row of adjacent pixels. Thearray 202 of FIG. 2 is a two dimensional array, and an image of a barcode may be captured by the image 202 in any of a number of differentorientations. For example, if the bar code 302 is orthogonal to animaging device, the pixels of the imaging device will capture rows ofdata that orthogonally transect the bar code. However, it is possible toselect pixels that are not oriented orthogonally to the bar code. Forexample, a row of data transecting a bar code diagonally may beconstructed by selecting pixels that are diagonally arranged across anarray of an imaging device. The processing module 128 may thereforeemploy the data shift module 129 to apply predetermined data shifts tocaptured images, in order to provide for additional perspectives forexamining the data. Rows of data constructed using such data shifts arecombined and processed as needed to provide bar code information.

The use of multiple cameras provides for the ability to capture morerows of data from a different perspective than can be captured by asingle camera, and provides for greater simplicity and assurance incapturing data suitable for decoding. In addition to providing theseadvantages, the use of separate cameras provides mechanisms forincreasing the depth of field of scanners such as the scanner 100. Forexample, the cameras 104A and 104E may be configured so that theyprovide staggered depth of field, with the first camera providingacceptable focus at greater distances and the second camera providingacceptable focus at lesser distances. Such differences in depth of fieldmay be provided by choosing cameras set at different focal points. Forexample, if both the camera 104A and the camera 104B employ fixed focuslenses with a focal length of 6 mm, different focusing points may beachieved by placing the imaging devices 108A and 108B at differentdistances behind the lenses 106A and 106B, respectively. For example, inorder to achieve an object distance of 150 mm for the camera 104A, theimaging device 108A would be placed 6.25 mm behind the lens 106A, and toachieve an object distance of 125 mm for the camera 104B, the imagingdevice 108B would be placed 6.302 mm behind the lens 106B.

The depth of field is based on the size of an acceptable blur point. Apoint object at the focusing distance of a camera will produce a pointimage, and an object in front of or behind this focusing distance willproduce a blur spot, with the blur spot increasing in diameter as thedistance of the object diverges more and more from the focusingdistance. The depth of field is a range bounded by the minimum andmaximum distances at which the blur spot diameters are acceptably small.In imaging bar code scanning, the acceptable blur spot size isdetermined by the size of the minimum module, that is, the minimum lightor dark bar code area, in a bar code to be decoded, and the pixel sizeof the imaging device being used.

For example, a barcode may have a minimum module width of 6 mils, or 150um. An exemplary pixel width might be 6 um. If a module is to span apixel, the magnification m provided by the focusing of the lens would bem=(−) 6/150 which is a function of the image and object distances by:m=−s′/s, where s is the object distance and s′ is the distance from thelens to the imaging device. For a blur spot of c=3 um, equivalent to ½pixel, and an object distance of 150 mm, a depth of field would beapproximately 14 mm. For such a case, therefore, an improved depth offield could be provided by configuring the cameras 104A and 104B so thatthe camera 104A was focused at an object distance of 157 mm and thecamera 104E was focused at an object distance of 143 mm. Both cameraswill provide acceptable focus for an object at a distance of 150 mm, andone camera or the other will provide acceptable focus at all distancesbetween 136 min and 164 mm.

Alternatively or in addition, cameras such as the cameras 104A and 104Bcan be used to allow for binocular rangefinding in order to determine adistance to a bar code. Knowledge of the distance can then be used toadjust a lens such as a rapid focus lens used by one or both of thecameras 104A and 104B. When both cameras capture an image of an object,the position of the image will experience a relative shift between thecameras based on the distance between the cameras and the distancebetween the cameras and the object. The camera control module 126therefore invokes the rangefinding and focusing module 130 to identify afeature of an image appearing in each camera and to evaluate the imagesto determine the offset between the feature from image to image. Theposition of the feature on the imaging device of each camera isdetermined, and the angle from the feature its image in the imagingdevice is determined for each camera. The angles and the known distancebetween cameras are used to determine the distance from each camera tothe feature. The rangefinding and focusing module 130 then uses therange to focus one or both of the lenses 106A and 106B. The cameracontrol module 126 then directs one or both of the cameras 104A and 104Bto capture and store an image, and the image is then processed by theprocessing module 128.

FIG. 4 illustrates the steps of a process 400 of image bar codeprocessing according to an aspect of the present invention. The process400 may be carried out using a scanner such as the scanner 100illustrated in FIGS. 1 and 2 and discussed above. At step 402, uponpresentation of a bar code at a scan window of a scanner, binocularrangefinding is carried out by dual cameras within the scanner todetermine a distance between the bar code and imaging devices of one orboth of the cameras. At step 404, the distance information is used tofocus one or more variable focus lenses. At step 406, image datarepresenting the bar code is stored in the imaging devices, with thedata being stored in rows of data elements arranged in arrays in theimaging devices. The imaging devices are preferably oriented such thatthey are nonorthogonal to preferred presentations of a bar code.Advantageous orientations that may be used include +45° or −45° if asingle camera is used, or if two cameras are used, +45° for one cameraand −45° for the other camera. While in the examples discussed, one ortwo cameras are employed, it will be recognized that additional camerasmay be used if such an addition is cost effective.

At step 408, data from selected data elements is analyzed. The selecteddata elements may suitably be selected rows of data elements. Analysismay include the combining of data to produce rows of data completelytransecting the bar code, and may be accomplished, for example, byexamining and combining data from multiple rows of pixels from oneimaging device, or by examining and combining corresponding rows ofpixels from two imaging devices. Analysis may further include examiningrows of pixels for valid data and if excessive invalid data is found,selecting alternative rows.

Alternatively, data elements may be selected across rows. Depending onthe relative orientation of a bar code and an imaging device, desirablesequences of bar code data may span multiple rows. For example, a barcode may be presented orthogonally to the imaging device and it may bedesired to capture a row of data transecting the bar code diagonally.Selection of data elements may therefore include examining sequences ofdata elements in multiple directions and selecting sequences thatprovide for efficient processing. At step 410, one or more rows of datarepresenting dark and light spaces across a complete transection of thebar code are processed to generate a scan signal, and at step 412, thescan signal is processed to extract bar code data.

While the present invention is disclosed in the context of a presentlypreferred embodiment, it will be recognized that a wide variety ofimplementations may be employed by persons of ordinary skill in the artconsistent with the above discussion and the claims which follow below.

We claim:
 1. An imaging bar code scanner comprising: a scanningaperture; at least two digital cameras for capturing images of a barcodethrough the scanning aperture, each comprising an imaging device facingin a nonorthogonal direction towards the scanning aperture; the imagingdevice for each of the at least two cameras comprising an array ofpixels arranged in a plurality of rows of pixels and capturing datarepresenting image elements of the bar code presented to the scanningaperture for scanning; and said at least two cameras being oriented suchthat the rows of pixels of a first camera are angled with respect to therows of pixels of a second camera and are both nonorthogonal andtransverse to the scanning aperture and to a preferred orientation forthe bar code presented for scanning.
 2. The bar code scanner of claim 1,wherein each imaging device is operative to capture a plurality of rowsof data representing dark and light spaces of the bar code, and whereinthe scanner further comprises a processor for combining two or more rowsof data to provide a complete transection of the bar code.
 3. The barcode scanner of claim 1, wherein the at least two cameras comprise firstand second cameras angled at opposing angles with respect to thescanning aperture and to the preferred orientation for the bar code. 4.The bar code scanner of claim 1, wherein at least one of the cameras isoriented such that the imaging device is at an angle of +45 degrees fromorthogonal to the scanning aperture and to the preferred orientation forthe bar code.
 5. The bar code scanner of claim 1, wherein the at leasttwo cameras comprise first and second cameras, and wherein the firstcamera is oriented such that the imaging device of the first camera isat an angle of +45 degrees from orthogonal to the scanning aperture andto a preferred orientation for the bar code and the imaging device ofthe second camera is at an angle of −45 degrees from orthogonal to theaperture and to the preferred orientation for the bar code.
 6. The barcode scanner of claim 5, wherein each imaging device is operative tocapture a plurality of rows of data representing dark and light spacesof the bar code, and wherein the scanner further comprises a processorfor combining one or more rows of data to provide a complete transectionof the bar code, combining the one or more rows of data comprisingcombining corresponding rows of data from each of the imaging devices.7. The bar code scanner of claim 1, wherein the at least two camerascomprise first and second cameras focused at different distances so thatthe cameras provide overlapping depths of field.
 8. The bar code scannerof claim 7, wherein the distances are determined by taking into accounta size of a minimum element to be captured by one of the pixels of thearray with respect to a size of the one pixel of the array and a size ofa maximum acceptable blur spot with respect to the size of the one pixelof the array.
 9. The bar code scanner of claim 1, wherein the at leasttwo cameras comprise first and second cameras and wherein at least oneof the cameras comprises a rapid focus lens, the bar code scannerfurther comprising a processor operative to perform binocular rangefinding using the first and second cameras to determine a distance fromthe at least one of the cameras to the bar code and to adjust the rapidfocus lens based on the determined distance.
 10. The bar code scanner ofclaim 1, further comprising a processor for analyzing bar code datacaptured by the imaging devices, and wherein the processor selects datafrom the pixels to create one or more rows of data representing one ormore transections of the bar code, selection of data comprising applyingpredetermined shifts to captured data to select different pixels fromdifferent rows to create final rows of data captured from multiple rowsof the pixels.
 11. A method of imaging bar code scanning, comprising;capturing images of a barcode through a scanning aperture of a barcodescanner by at least two digital cameras including imaging devices facingin nonorthogonal directions towards the scanning aperture, includingstoring data representing light and dark elements of the bar code ineach of a plurality of data elements arranged in an array or rows ofdata elements in each of the imaging devices of the at least two digitalcameras, the at least two digital cameras being oriented such that therows of data elements are oriented both nonorthogonally and transverseto the scanning aperture and to a preferred orientation for the barcode; processing the stored data to generate a scan signal; andprocessing the scan signal to extract bar code data.
 12. The method ofclaim 11, wherein processing the stored data comprises combining datafrom multiple rows of data elements to provide a complete transection ofthe bar code.
 13. The method of claim 12, wherein processing the storeddata comprises examining rows of captured data to determine if more thana predetermined number of pixels is storing invalid data and rejectingrows of captured data including more than the predetermined number ofpixels storing invalid data.
 14. The method of claim 11, wherein the atleast two cameras comprise first and second cameras oriented such thatthe rows of data elements of the first camera is oppositely oriented tothe rows of data elements of the second camera.
 15. The method of claim12, wherein a first camera is oriented at an angle of +45 degrees fromorthogonal to the scanning aperture and to a preferred orientation forthe bar code and a second camera is oriented at an angle of −45 degreesto the scanning aperture and from the bar code.
 16. The method of claim11, further comprising the steps of: performing binocular range findingusing first and second cameras to determine a range from one of thecameras to the bar code; and focusing a rapid focus lens of the one ofthe cameras based on the determined distance.
 17. An imaging bar codescanner comprising: a scanning aperture; one or more digital cameras forcapturing images of a barcode through the scanning aperture, eachcomprising an imaging device facing in a nonorthogonal direction towardsthe scanning aperture; the imaging device for each of the one or morecameras comprising an array of pixels arranged in a plurality of rows ofpixels and capturing data representing image elements of the bar codepresented for scanning; and a processor for selecting data from thepixels to create one or more rows of data representing one or moretransections of the bar code, selection of data including applyingpredetermined shifts to captured data to select different pixels fromdifferent rows to create final diagonal rows of data independently ofthe rows of pixels in which the captured data appears, wherein thediagonal rows of data are both transverse and nonorthogonal to thescanning aperture and to the orientation of the bar code.
 18. Theimaging bar code scanner of claim 17 wherein diagonal rows of data arecombined and processed to provide bar code information.
 19. The imagingbar code scanner of claim 18 employing two digital cameras.
 20. Theimaging bar code scanner of claim 19 wherein the two digital camerasprovide a staggered depth of field.